/**
 * 
 */
package com.maohi.software.arii.utils;

import java.util.List;
import java.util.Map;

import com.google.inject.Module;
import com.google.inject.TypeLiteral;
import com.maohi.software.arii.events.DependencyListener;
import com.maohi.software.arii.interfaces.Activator;
import com.maohi.software.arii.jaxb2.Plugin;
import com.maohi.software.arii.jaxb2.Plugin.ExtensionPoints.ExtensionPoint;
import com.maohi.software.arii.jaxb2.Plugin.Extensions.Extension;
import com.maohi.software.arii.jaxb2.Plugin.Jaxb.Xml;
import com.maohi.software.arii.jaxb2.Plugin.Jaxb.Xsd;

/**
 * @author heifara
 * 
 */
public class TypeLiterals {

	public static TypeLiteral<List<Activator>> getListActivator() {
		return new TypeLiteral<List<Activator>>() {
		};
	}

	public static TypeLiteral<List<DependencyListener>> getListDependencyListener() {
		return new TypeLiteral<List<DependencyListener>>() {
		};
	}

	public static TypeLiteral<List<Module>> getListModule() {
		return new TypeLiteral<List<Module>>() {
		};
	}

	public static TypeLiteral<Map<ExtensionPoint, List<Extension>>> getMapExtensionPointListExtension() {
		return new TypeLiteral<Map<ExtensionPoint, List<Extension>>>() {
		};
	}

	public static TypeLiteral<Map<String, List<Extension>>> getMapStringListExtension() {
		return new TypeLiteral<Map<String, List<Extension>>>() {
		};
	}

	public static TypeLiteral<Map<String, List<ExtensionPoint>>> getMapStringListExtensionPoint() {
		return new TypeLiteral<Map<String, List<ExtensionPoint>>>() {
		};
	}

	public static TypeLiteral<Map<String, Plugin>> getMapStringPlugin() {
		return new TypeLiteral<Map<String, Plugin>>() {
		};
	}

	public static TypeLiteral<Map<Xsd, List<Xml>>> getMapXsdListXml() {
		return new TypeLiteral<Map<Xsd, List<Xml>>>() {

		};
	}

	public static TypeLiteral<Map<Module, Module>> getMapModuleModule() {
		return new TypeLiteral<Map<Module, Module>>() {

		};
	}

}
